/**
 * @Author: Ray丶X
 * @Date: 2020/3/25
 */
console.log(__filename, '__filename');
console.log(__dirname, '__dirname');

function setout() {
  console.log('setout');
}

setTimeout(setout, 1000);

function t() {
  console.log('ttt');
}

var timer = setTimeout(t, 2000);

clearTimeout(timer);

function setintval() {
  console.log('setintval');
}

// setInterval(setintval, 2000);

// console.trace();

console.info("程序开始执行：");

var counter = 10;
console.log("计数: %d", counter);

console.time("获取数据");
//
// 执行一些代码
//
console.timeEnd('获取数据');

console.info("程序执行完毕。");

// 输出当前目录
console.log('当前目录: ' + process.cwd());

// 输出当前版本
console.log('当前版本: ' + process.version);

// 输出内存使用情况
console.log(process.memoryUsage());

// --------------------- process 事件
// exit 当进程准备退出时触发。
// beforeExit 当 node 清空事件循环，并且没有其他安排时触发这个事件。通常来说，当没有进程安排时 node 退出，但是 'beforeExit' 的监听器可以异步调用，这样 node 就会继续执行。
// uncaughtException 当一个异常冒泡回到事件循环，触发这个事件。如果给异常添加了监视器，默认的操作（打印堆栈跟踪信息并退出）就不会发生。
// Signal 当进程接收到信号时就触发。信号列表详见标准的 POSIX 信号名，如 SIGINT、SIGUSR1 等。
process.on('exit', function (code) {
  setTimeout(function () {
    console.log(23)
  }, 0);
  console.log('退出码:' , code)
});
console.log('执行结束');
